package com.tduck.cloud.datav.request;


import com.tduck.cloud.report.data.enums.AggsTypeEnum;
import com.tduck.cloud.report.data.enums.DateToStringFormatEnum;
import com.tduck.cloud.report.data.params.FormDataFilterParams;
import com.tduck.cloud.report.data.params.GroupQueryParams;
import lombok.Data;

import java.util.List;

/**
 * 图表请求数据参数
 *
 * @author tduck
 */
@Data
public class ChartDataRequest {


    /**
     * 表单key
     */
    private String indexName;
    /**
     * 图表类型
     */
    private String chartType;

    /**
     * 指标
     */
    private List<IndexField> index;

    /**
     * 取前多少条数据
     */
    private Integer limit;

    /**
     * 维度
     */
    private List<DimensionField> dimension;


    /**
     * 过滤条件
     */
    private FormDataFilterParams filter;


    private List<GroupQueryParams.SortField> sorts;

    @Data
    public static class IndexField {
        private String id;
        /**
         * 字段名称
         */
        private String label;

        /**
         * 聚合类型
         */
        private AggsTypeEnum aggregateType;

        /**
         * 字段值
         */
        private String value;

        /**
         * 日期范围 过滤  TimeRangeEnum
         */
        private String dateRange;
    }

    @Data
    public static class DimensionField {
        private String id;
        /**
         * 字段名称
         */
        private String label;

        private DateToStringFormatEnum dateFormat;

    }


}



